package ${packageName}.service;

import ${packageName}.dto.${lowerClassName}.query.${className}QueryDto;
import ${packageName}.dto.${lowerClassName}.input.${className}InputDto;
import ${packageName}.vo.${lowerClassName}.${className}Vo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.cloud.openfeign.SpringQueryMap;
import com.github.pagehelper.PageInfo;
import org.springframework.web.bind.annotation.RequestParam;
import ${basePackageName}.vo.CommonResultVo;

@Component
@FeignClient(value = "${providerName}")
public interface I${className}ApiService  {

     /**
     * 新增修改
     * @param ${lowerSaveClassName} 根据VO对象新增
     */
   @PostMapping("/${lowerClassName}/saveOrUpdate")
   CommonResultVo<${className}Vo> saveOrUpdate(@SpringQueryMap ${saveClassName} ${lowerSaveClassName});



     /**
     * 根据主键删除对象
     * @param ${primaryClassName} 主键
     * @return
     */
    @PostMapping("/${lowerClassName}/delete")
    CommonResultVo deleteByPrimary(@RequestParam("${primaryClassName}") ${primaryClassType} ${primaryClassName});


   /**
     * 通过主键 查询对应对象DTO
     * @param ${primaryClassName} 主键
     * @return
     */
   @PostMapping("/${lowerClassName}/get")
   CommonResultVo<${className}Vo> getVoByPrimary(@RequestParam("${primaryClassName}") ${primaryClassType} ${primaryClassName});


    /**
     * 分页查询
     * @param ${lowerClassSearchName} 查询条件
     * @return
     */
    @PostMapping("/${lowerClassName}/getPage")
    CommonResultVo< PageInfo<${classPageName}>> getPage(@SpringQueryMap ${classSearchName} ${lowerClassSearchName});





}